﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;

using PMServiceDesk.BusinessLogic;
using PMServiceDesk.DataType;
using PMServiceDesk.Utils.Interfaz;
using PMServiceDesk.Utils.ManejoDatos;
using PMServiceDesk.Parameters.Constantes;
using PMServiceDesk.Web.AppCode;

namespace PMServiceDesk.Web.Forms.Configuracion
{
    public partial class RegistrarRecurso : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack) return;

            this.PrepareForm();

            this.InitForm();

            txtNombre.Focus();
        }

        protected void PrepareForm()
        {
            InterfazUtils.LoadDropDownList(ddlTipoRecurso, SoporteLogic.ParametrosPorDominio(Dominios.TipoRecurso, "1"), DatosControl.SeleccionarItem);
            InterfazUtils.LoadDropDownList(ddlTipoDocumentoIdentidad, SoporteLogic.ParametrosPorDominio(Dominios.TipoDocumentoIdentidad, "1"), DatosControl.SeleccionarItem);
            InterfazUtils.LoadDropDownList(ddlCalendario, SoporteLogic.CalendariosPorProyecto(Sesion.Usuario.ProyectoId,"1") , DatosControl.SeleccionarItem);
            InterfazUtils.LoadDropDownList(ddlEstado, SoporteLogic.EstadosPorTabla(Tablas.Recurso,"1") , DatosControl.SeleccionarItem);

            ProyectoLogic logic = new ProyectoLogic();
            ProyectoType proyecto = logic.CargarPorId(Sesion.Usuario.ProyectoId);

            lblMoneda.Text = proyecto.SimboloMoneda;
        }

        protected void InitForm()
        {
            string id = Request["ID"];

            if (id == null) return;

            RecursoLogic logic = new RecursoLogic();
            RecursoType recurso = logic.CargarPorId(id) ;

            if (recurso == null) return;

            hiddenId.Value = recurso.Id;
            txtNombre.Text = recurso.Nombre;
            ddlTipoRecurso.SelectedValue = recurso.TipoRecursoId;
            txtAbreviatura.Text = recurso.Abreviatura;
            ddlTipoDocumentoIdentidad.SelectedValue = recurso.TipoDocumentoIdentidadId;
            txtDocumentoIdentidad.Text = recurso.DocumentoIdentidad;
            hiddenTipoCostoId.Value = recurso.TipoCostoId;
            lblTipoCosto.Text = recurso.TipoCosto;
            txtCosto.Text = ConvertFormat.Decimal_To_Char(recurso.Costo);
            ddlCalendario.SelectedValue = recurso.CalendarioId;
            ddlEstado.SelectedValue = recurso.EstadoId;
        }

        [WebMethod]
        public static RecursoType Grabar(RecursoType registro)
        {
            return RecursoIU.Grabar(registro);
        }

        [WebMethod]
        public static ParametroType TipoCostoPorTipoRecurso(string tipoRecursoId)
        {
            return RecursoIU.TipoCostoPorTipoRecurso(tipoRecursoId);
        }
    }
}